Database Polling এবং Data Processing

Latest Technologies - অ্যাপাচি ক্যামেল (Apache  Camel) - File এবং Database Integration | NCTB BOOK

Apache Camel-এ Database Polling একটি কার্যকরী কৌশল যা একটি ডাটাবেস থেকে তথ্য গ্রহণ করে এবং সেই তথ্যকে প্রক্রিয়াকরণের জন্য ব্যবহার করে। Camel Database Component ব্যবহার করে আপনি বিভিন্ন ডাটাবেসে polling করতে পারেন, যেমন MySQL, PostgreSQL, Oracle ইত্যাদি।

১. Maven প্রকল্প তৈরি করা

প্রথমে একটি Maven প্রকল্প তৈরি করুন। নিচের কমান্ডটি ব্যবহার করে একটি নতুন প্রকল্প তৈরি করতে পারেন:

mvn archetype:generate -DgroupId=com.example.camel -DartifactId=camel-database-polling -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

২. Dependencies যুক্ত করা

pom.xml ফাইলে Apache Camel Database Component এবং JDBC Driver এর জন্য প্রয়োজনীয় ডিপেনডেন্সি যুক্ত করুন:

<dependencies>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-core</artifactId>
        <version>3.17.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-jdbc</artifactId>
        <version>3.17.0</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.23</version> <!-- Use the appropriate version for your database -->
    </dependency>
</dependencies>

৩. Database Polling রাউট তৈরি করা

এখন আপনি একটি রাউট তৈরি করতে পারেন যা ডাটাবেস থেকে polling করে তথ্য নিয়ে আসবে। নিচে একটি উদাহরণ দেয়া হলো:

DatabasePollingRoute.java:

import org.apache.camel.builder.RouteBuilder;

public class DatabasePollingRoute extends RouteBuilder {
    @Override
    public void configure() throws Exception {
        from("timer:pollTimer?period=5000") // Poll every 5 seconds
            .to("jdbc:dataSource") // Use JDBC to query the database
            .log("Fetched records: ${body}") // Log the fetched records
            .process(exchange -> {
                // Custom processing logic
                // Example: Process the data from the database
                List<Map<String, Object>> rows = exchange.getIn().getBody(List.class);
                for (Map<String, Object> row : rows) {
                    // Process each row
                    System.out.println("Processing row: " + row);
                }
            });
    }
}

৪. Database Configuration

JDBC ডাটাবেস সংযোগের জন্য একটি dataSource কনফিগার করতে হবে। এখানে আমরা application.properties ফাইল বা কোডে সরাসরি কনফিগারেশন করতে পারি।

Database Configuration Example:

import org.apache.camel.CamelContext;
import org.apache.camel.impl.DefaultCamelContext;
import org.apache.commons.dbcp2.BasicDataSource;

public class CamelApplication {
    public static void main(String[] args) throws Exception {
        // Configure DataSource
        BasicDataSource dataSource = new BasicDataSource();
        dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/your_database");
        dataSource.setUsername("your_username");
        dataSource.setPassword("your_password");

        // Create Camel Context
        CamelContext context = new DefaultCamelContext();
        context.getRegistry().bind("dataSource", dataSource); // Bind DataSource to Camel context

        // Add the database polling route
        context.addRoutes(new DatabasePollingRoute());

        // Start the context
        context.start();
        System.out.println("Database Polling is running...");

        // Keep the application running
        Thread.sleep(30000); // Keep running for 30 seconds
        context.stop();
    }
}

৫. Database Polling পরীক্ষা করা

উপরের কোডটি চালানোর পর, প্রতি 5 সেকেন্ডে ডাটাবেস থেকে নতুন রেকর্ডগুলি পড়া হবে এবং লগ করা হবে। process মেথডের মধ্যে আপনার কাস্টম ডেটা প্রক্রিয়াকরণ লজিক যুক্ত করতে পারেন।

উপসংহার

Apache Camel-এ Database Polling এবং Data Processing একটি শক্তিশালী পদ্ধতি যা ডাটাবেস থেকে তথ্য নিয়ে আসা এবং তা প্রক্রিয়া করার জন্য ব্যবহৃত হয়। Camel-এর মাধ্যমে আপনি সহজেই ডাটাবেসে polling করতে পারেন এবং ডেটাকে প্রয়োজনীয়ভাবে প্রক্রিয়া করতে পারেন।

এই উদাহরণগুলোর মাধ্যমে আপনি শিখতে পারবেন কিভাবে Apache Camel ব্যবহার করে ডাটাবেস থেকে তথ্য সংগ্রহ করবেন এবং সেই তথ্যকে কিভাবে প্রক্রিয়া করবেন। Camel আপনার সফটওয়্যার প্রকল্পের কার্যকারিতা বাড়াতে সাহায্য করে।

Promotion